The present invention relates to a method of encoding a source signal by calculating or determining Line Spectral Frequencies (LSFs) by determining real zeros in associated Pxe2x80x3(z) and Qxe2x80x3(z) polynomials in cos(mxcfx89) and, with the polynomials written as a series of Chebyshev polynomials, evaluating cos(xcfx89) per function evaluation.
The coding of source signals such as speech signals, is used particularly in the field of mobile communications since the coded speech signal can be transmitted in a manner in which the redundancy commonly experienced in human speech is reduced. Linear Predictive Coding (LPC) is a known technique normally used in speech coding and in which the correlation of the speech signal is removed by means of a filter. The filter is best described by way of one of a different set of parameters, and one important set of which comprises LSFs.
An accurate representation of the filter is an important requirement since such information is transmitted with the speech signal for subsequent reconstruction of the speech signal at a signal-receiving unit.
The advantages of representing LPC filter coefficients in the form of LSFs have been well-documented since the inception of this concept in 1975. However, disadvantages are also experienced in that the LSFs cannot be easily computed for higher-order LPC filters and numerical methods are needed to calculate the zeros of the various functions.
As is well known, the representation of an inverse LPC filter A(z) in the form of LSFs is derived from the representation of A(z) by its set of zeros in the z-plane. Insofar as the function A(z) represents an all-zero filter, it can be fully and accurately described by way of reference to its corresponding set of zeros.
Computation of the LSFs commences with the decomposition of the polynomial Am(z) of order m into two inverse polynomial functions P(z) and Q(z). For confirmation, the polynomial Am (z) and the two inverse polynomials appear as follows:
Am(z)=1+xcex11zxe2x88x921+xcex12zxe2x88x922+ . . . +xcex1mzxe2x88x92m
and
P(z)=Am(z)+zxe2x88x92(m+1)Am(zxe2x88x921)
Q(z)=Am(z)xe2x88x92zxe2x88x92(m+1)Am(zxe2x88x921)
The polynomials P(z) and Q(z) each have (m+1) zeros and exhibit various important characteristics. In particular: all zeros of P(z) and Q(z) are found on the unit circle in the z-plane; the zeros of P(z) and Q(z) are interlaced on the unit circle and the zeros do not overlap; and the minimum phase property of Am(z) is easily preserved when the zeros of P(z) and Q(z) are quantised.
Analysis of the above confirms that z=xe2x88x921 and z=+1 is always zero with the functions P(z) and Q(z) and since these zeros do not contain any information relating to the LPC filter, they can simply be removed from P(z) and Q(z) by dividing by (1+zxe2x88x921) and (1xe2x88x92zxe2x88x921).
Such revised functions can be represented when m is even as follows:             P      xe2x80x2        ⁡          (      z      )        =                              P          ⁡                      (            z            )                                    (                      1            +                          z                              -                1                                              )                    ⁢              xe2x80x83            ⁢      and      ⁢              xe2x80x83            ⁢                        Q          xe2x80x2                ⁡                  (          z          )                      =                  Q        ⁡                  (          z          )                            (                  1          -                      z                          -              1                                      )            
and when m is odd as:             P      xe2x80x2        ⁡          (      z      )        =                    P        ⁡                  (          z          )                    ⁢              xe2x80x83            ⁢      and      ⁢              xe2x80x83            ⁢                        Q          xe2x80x2                ⁡                  (          z          )                      =                            Q          ⁡                      (            z            )                                                (                          1              -                              z                                  -                  1                                                      )                    ⁢                      (                          1              +                              z                                  -                  1                                                      )                              .      
The advantageous properties of functions P(z) and Q(z) as noted above are also valid for Pxe2x80x2(z) and Qxe2x80x2(z). Since the coefficients of Pxe2x80x2(z) and Qxe2x80x2(z) comprise real numbers, the zeros form complex conjugate pairs such that the search for zeros only has to be conducted on the upper half of the unit circle, i.e. where 0 less than xcfx89 less than xcfx80.
It generally proves inconvenient to compute complex zeros, particularly by way of computerised numerical analysis methods, and so the functions Pxe2x80x2(z) and Qxe2x80x2(z) are transformed to functions Pxe2x80x3(z) and Qxe2x80x3(z) with real zeros. Also, the functions Pxe2x80x2(z) and Qxe2x80x2(z) always have an even order and, since they are symmetrical, the functions can be re-written with real zeros to the following manner:                                           P            xe2x80x3                    ⁡                      (            ω            )                          =                  2          ⁢                                    ∑                              i                =                0                                            m                p                                      ⁢                                          p                i                xe2x80x3                            ⁢                              cos                ⁡                                  (                                                            (                                                                        m                          p                                                -                        i                                            )                                        ⁢                    ω                                    )                                                                                                                  Q            xe2x80x3                    ⁡                      (            ω            )                          =                  2          ⁢                                    ∑                              i                =                0                                            m                q                                      ⁢                                          q                i                xe2x80x3                            ⁢                              cos                ⁡                                  (                                                            (                                                                        m                          q                                                -                        i                                            )                                        ⁢                    ω                                    )                                                                        
where
p0xe2x80x3=1, p1,2 . . . mpxe2x88x921xe2x80x3=p1,2 . . . mpxe2x88x921xe2x80x2, pmpxe2x80x3=xc2xdpmpxe2x80x2,q0xe2x80x3=1, q1,2 . . . mqxe2x88x921xe2x80x3=q1,2 . . . mqxe2x88x921xe2x80x3=q1,2 . . . mqxe2x88x921xe2x80x2, qmqxe2x80x3=xc2xdqmqxe2x80x2, and
where mp is equal to the number of zeros of Pxe2x80x2(z) on the upper half of the unit circle and where mq is equal to the number of zeros of Qxe2x80x2(z) on the upper half of the unit circle.
When seeking the zeros of these functions, advantage can be taken from the form of the representations for Pxe2x80x3(z) and Qxe2x80x3(z) due to the fact that the number of zeros to be located is already known. One particular method for identifying the zeros is by searching the interval [0,xcfx80] by effectively stepping, with relatively small steps, through the aforesaid interval and identifying a small interval within which a change in the sign of the function indicates that an odd number of zeros must be present within that interval. Thus, if the step size is small enough, there is a great probability that there is only one zero in the interval.
Once the LSFs have been identified and employed as required, the recomputation of the LPC filter coefficients from the LSFs can readily be achieved. This stage represents a much less computationally intensive calculation than the computation of the LSFs from the filter coefficients as discussed above.
Returning to the functions Pxe2x80x3(z) and Qxe2x80x3(z), these can be readily computed if the polynomials are written as a series of Chebyshev polynomials wherein, by using the map x=cos(xcfx89), cos(mxcfx89) can be represented as: cos(mxcfx89)=Tm(x) where Tm(x) is a mth-order Chebyshev polynomial in x.
Since the roots of polynomials Pxe2x80x3(z) and Qxe2x80x3(z) are interlaced, a logical first step is to merely find the roots of Pxe2x80x3(z) after which the roots of Qxe2x80x3(z) are easily found. As noted above, the task of finding all roots of Pxe2x80x3(z) employs stepping at very small intervals through the range [0,xcfx80]. In view of the above-mentioned mapping of x=cos(xcfx89), cos(xcfx89) must be calculated for every function evaluation. The cosine function is a computationally complex and computationally expensive function and to reduce this problem equidistant steps in the x-domain can be considered. However, around the values of xcfx89=0 and xcfx89=xcfx80 relatively large steps are made and to compensate for this the step size must be decreased in these areas in order to accurately identify single roots and this disadvantageously means that additional processing is required.
Additionally the approach of stepping through the x-domain directly with equidistant steps within the interval [1,xe2x88x921] leads to a problematic frequency-dependant accuracy of the zeros located. Disadvantageously, problems still arise even though the use of Chebyshev polynomials allows the evaluation of the single cos(xcfx89) per function evaluation. As noted, the above-mentioned use of small steps increases the complexity of the search procedure.
The present invention seeks to provide for a method of calculating LSFs which exhibits advantages over the above-mentioned known methods.
According to one aspect of the invention, there is provided a method of calculating LSFs as defined above and characterised by introducing the mapping x=cos(xcfx89) and by the step of providing an approximation for the cosine function.
The invention is advantageous in that, by adopting the approximation, the frequency dependent accuracy of the located zeros is improved and the complexity of the method compares favourably with the prior art methods.
As will be appreciated the method of the present invention overcomes problems encountered within the prior art with regard to the calculation of the LSFs and relating to the calculation of the roots of the relevant polynomials. This is a particularly important aspect in the field of LPC since if such calculations are not carried out correctly, numerical problems can readily arise when the calculations are performed using 32 bit floating-point numbers or using integers.